/*
 * Ma.h
 *
 *  Created on: 2011-7-31
 *      Author: Administrator
 */

#ifndef MA_H_
#define MA_H_
#include "Chess.h"
class Ma:public Chess {
public:
	Ma();
	virtual ~Ma();
	virtual void GenActions(std::vector<Action>& actions,Position& pos,SituationProjection& projection);
protected:
	virtual bool MoveRuleCheck(Position& srcPos,Position& destPos,SituationProjection& projection);
	void GenFirstXiangXian(std::vector<Action>& actions,Position& pos,SituationProjection& projection);
	void GenSecondXiangXian(std::vector<Action>& actions,Position& pos,SituationProjection& projection);
	void GenThirdXiangXian(std::vector<Action>& actions,Position& pos,SituationProjection& projection);
	void GenFourthXiangXian(std::vector<Action>& actions,Position& pos,SituationProjection& projection);
};

#endif /* MA_H_ */
